package main

import (
	"fmt"

	"time"
)

func printString1(value string) {

	for {

		fmt.Println(value)

		time.Sleep(time.Second) //0.1 second

	}

}
func printString2(value string) {

	fmt.Println(value)
	time.Sleep(time.Second) //0.1 second
	select {}

}

func main() {

	go printString1("A")
	go printString2("B")

	time.Sleep(time.Second * 10) //暂时挂起主线程，让goroutine的两个线程跑完
}

/* 两个线程交叉输出，说明是以并发形式执行，这里为什么说是并发而不是并行，因为go语言默认是单核执行线程。如果想要多核并行执行，需要在启动goroutine之前首先调用以下语句配置cpu核数：

runtime.GOMAXPROCS()

自从Go 1.5开始， Go的GOMAXPROCS默认值已经设置为 CPU的核数，我们不用手动设置这个参数。 */
